home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / pluginy Firefox / 56804 / 56804.xpi / chrome / content / seoPRAlexa.js < prev    next >
Text File  |  2010-01-31  |  22KB  |  556 lines

  1. if(!com) var com={};
  2. if(!com.seostatus) com.seostatus={};
  3.  
  4. com.seostatus.seoPRAlexa =  function(){
  5.   var pub = {};
  6.   pub.pref = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefService);
  7.   
  8.   pub.stb_AlexaRequest;
  9.     
  10.   pub.SiteInfo = function(url, sentType, sentValue) {
  11.   this.url=url;
  12.   this.type=sentType;
  13.   this.value=sentValue;
  14.   }
  15.   
  16.   
  17.   pub.lastURL = "NONE";
  18.   pub.allURLs = new Array();
  19.   pub.aSite = new pub.SiteInfo("about:blank", 1, "N");      
  20.   
  21.   pub.allURLs.push(pub.aSite);
  22.   pub.aSite = new pub.SiteInfo("about:blank", 2, "N");       
  23.   pub.allURLs.push(pub.aSite);
  24.   
  25.   pub.indexOfSite = function(theArr, site, sentType){
  26.     for (var i = 0; i < theArr.length; i++) {        
  27.       if (theArr[i].url == site && theArr[i].type == sentType){ 
  28.         return i;
  29.       }
  30.     }
  31.     return -1;
  32.   }
  33.   pub.hasThis = function( theArr, site, sentType){
  34.     return pub.indexOfSite(theArr, site, sentType) >= 0;
  35.   }
  36.   
  37.   pub.justLoaded = function(){
  38.       if (pub.lastURL == content.document.location){
  39.           return;
  40.       }
  41.       else{
  42.           pub.lastURL = content.document.location;
  43.             var alexaBut = document.getElementById('SEOTB-Alexa');
  44.           alexaBut.setAttribute("tooltiptext", "Alexa Rank: N/A"); 
  45.           alexaBut.setAttribute("image", "chrome://seostatus/skin/pr/aprN.gif");
  46.           pub.getPR();
  47.       }
  48.   }
  49.   
  50.   pub.getPR = function(){
  51.   
  52.     if (pub.hasThis(pub.allURLs, content.document.location, 2)){
  53.     //if (is_in_array(allURLs, content.document.location, 2)){
  54.      //  alert("caught " + content.document.location + " type pagerank" );
  55.       // getPRNum(content.document.location);
  56.       var myIndex1 = pub.indexOfSite(pub.allURLs, content.document.location, 2);
  57.       var myPR = pub.allURLs[myIndex1].value;
  58.       
  59.       //the following check is to rid ourselves of a hidden bug.
  60.       if (myPR > 10) com.seostatus.gprAlg.initPagerankStatus(content.document.location);
  61.       else pub.updateText(myPR, 2);
  62.      
  63.         //pub.updateText(sentValue, 2);
  64.     }
  65.     else {  
  66.       //getPRNum(content.document.location);
  67.       //var strURL = new String (sentURL);
  68.       com.seostatus.gprAlg.initPagerankStatus(content.document.location)
  69.     }
  70.     if (pub.hasThis(pub.allURLs, pub.getDomainOnly(content.document.location), 1)){
  71.     //if (is_in_array(pub.allURLs, content.document.location, 1)){
  72.   
  73.         var myIndex2 = pub.indexOfSite(pub.allURLs, pub.getDomainOnly(content.document.location), 1);
  74.         var myValueAlexa = pub.allURLs[myIndex2].value;
  75.         
  76.         pub.updateText(myValueAlexa, 1);
  77.         //alert("already accounted for " + content.document.location);
  78.         
  79.     }
  80.     else {
  81.     //alert ("doc.dom: "+document.domain);
  82.    // alert ("chopped: " +pub.getDomainOnly(content.document.location));
  83.    
  84.        // getAlexaNum(pub.getDomainOnly(content.document.location));
  85.       //alert("before");
  86.        pub.initAlexaStatus(pub.getDomainOnly(content.document.location));
  87.       //alert("after");
  88.         //pub.updateLexi(content.document.location);
  89.     }
  90.   
  91.   }
  92.    
  93.    pub.shouldICheckAlexa = function(){
  94.    
  95.       var branch = pub.pref.getBranch("seostatus.");
  96.           try 
  97.           {
  98.             
  99.             var alexaButSB = document.getElementById('SEOTB-Alexa-status');
  100.             var alexaBut = document.getElementById('SEOTB-Alexa');
  101.             //alert("before");
  102.             if (branch.prefHasUserValue("stb_hide_the_meters")){
  103.             var hideMeters = branch.getBoolPref("stb_hide_the_meters");
  104.             if (hideMeters == true) return false;
  105.         }
  106.         if (branch.prefHasUserValue("stb_hide_the_meters")){
  107.                 var licenseAgreed = branch.getBoolPref("stb_alexa_agree");
  108.                 if (licenseAgreed != true) return false;
  109.             }
  110.             
  111.             var currSite = new String(content.document.location); 
  112.             
  113.             if (currSite.indexOf("@") != -1) return false;
  114.         if (currSite.indexOf("http") == -1) return false;      
  115.         //alert("license: " + licenseAgreed);
  116.      
  117.             if(branch.prefHasUserValue("stb_alexa_restricted_total_num")){
  118.                 var numSites = branch.getIntPref("stb_alexa_restricted_total_num");
  119.             //alert(numSites);
  120.                         
  121.                for (var i=0; i < numSites; i++){
  122.                         var aSite = branch.getCharPref("stb_alexa_restricted_sites["+i+"]");                                                
  123.                   if (currSite.indexOf(aSite) != -1) {                    
  124.                       return false; 
  125.                   }      
  126.                   //alert ("CurrentSite: " + currSite + "\nstoredSite: " + aSite);
  127.               }
  128.         }
  129.         return true;
  130.           }
  131.           catch(e)
  132.           {
  133.               
  134.             alert("error: " + e);
  135.             return true;
  136.           }
  137.    
  138.    }
  139.    
  140.   pub.initAlexaStatus = function(localname) 
  141.     { 
  142.       var branch = pub.pref.getBranch("seostatus.");
  143.         var url = window._content.document.location.toString();
  144.         if (!pub.shouldICheckAlexa())  return; 
  145.         var alexaBut = document.getElementById('SEOTB-Alexa');
  146.         var alexaButSB = document.getElementById('SEOTB-Alexa-status');
  147.       alexaBut.setAttribute("tooltiptext", "Alexa Rank: Computing..."); 
  148.       alexaBut.setAttribute("image", "chrome://seostatus/skin/pr/aprThink.gif");
  149.       alexaButSB.setAttribute("tooltiptext", "Alexa Rank: Computing..."); 
  150.       alexaButSB.setAttribute("src", "chrome://seostatus/skin/pr/alN.png");
  151.             //
  152.                   //    var stb_InstallDate = branch.getCharPref( "installdate" );
  153.               if(branch.prefHasUserValue("stb_installDate")){
  154.                      // alert("1");
  155.               var stb_InstallDate = branch.getIntPref("stb_installDate");
  156.                 //    alert(stb_InstallDate);
  157.                     try
  158.                   {
  159.         
  160.                     var dnsService = Components.classes["@mozilla.org/network/dns-service;1"].getService( Components.interfaces.nsIDNSService );
  161.                     //var localname = dnsService.myHostName;
  162.                     var localhost = dnsService.myHostName;
  163.                     var dnsRecord = dnsService.resolve( localhost, false );
  164.                     var stb_LocalIP = dnsRecord.getNextAddrAsString();
  165.                     //var stb_LocalIP = '<!--#echo var="REMOTE_ADDR"-->';
  166.                   }
  167.                   catch(e)
  168.                   {
  169.                       //alert(e);//ignore
  170.                   }
  171.       
  172.                     var encodedUrl = pub.urlEncode( url );
  173.                     var querystring = "http://";
  174.                     querystring += "xml.alexa.com/data?cli=10&dat=nsa&ver=rubyweb.org&uid=" + stb_InstallDate + "&userip=" + stb_LocalIP + "&url=" + encodedUrl;
  175.       
  176.                     
  177.                     pub.stb_AlexaRequest = new XMLHttpRequest();
  178.                     
  179.                   pub.stb_AlexaRequest.onload = function() { pub.setAlexaStatus(localname);};
  180.                   pub.stb_AlexaRequest.open( "GET", querystring );
  181.                   pub.stb_AlexaRequest.send( null );
  182.                     stb_AlexaQuerystring = querystring;
  183.                         //alert(querystring);
  184.               }
  185.               else{
  186.               //alert("no install date");
  187.               pub.firstTimeRun();
  188.           }
  189.     }
  190.   
  191.     pub.setAlexaStatus = function(sentURL)
  192.     {
  193.        try{
  194.             var aDoc = pub.stb_AlexaRequest.responseXML;    
  195.             var bigRanking = aDoc.getElementsByTagName( "POPULARITY" )[0].getAttribute("TEXT");
  196.             var littleRanking = pub.getAlexaStatus(bigRanking);
  197.             var domainRet = aDoc.getElementsByTagName( "POPULARITY" )[0].getAttribute("URL");
  198.           
  199.             newSentUrl = sentURL.replace(/[^a-zA-Z 0-9]+/g,'');
  200.                       newCurrLoc = escape(content.document.location).replace(/[^a-zA-Z 0-9]+/g,'');
  201.                       
  202.           //            if (newSentUrl.match(newCurrLoc) != null || (pub.getDomainOnly(domainRet).match(pub.getDomainOnly(content.document.location)) != null && sentType==1) ){
  203.             
  204.                               pub.updateText(bigRanking, 1); 
  205.                           pub.aSite = new pub.SiteInfo(pub.getDomainOnly(content.document.location), 1, bigRanking); 
  206.                                 
  207.                           pub.allURLs.push(pub.aSite);  
  208.         
  209.         //              }
  210.           
  211.           //alert (domainRet);
  212.           //alert (bigRanking);
  213.           //alert (littleRanking);
  214.       }
  215.       catch(e){
  216.           //alert ("Caught a problem....will put alexa as N/A");
  217.           var alexaBut = document.getElementById('SEOTB-Alexa');
  218.           alexaBut.setAttribute("tooltiptext", "Alexa Rank: N/A"); 
  219.           alexaBut.setAttribute("image", "chrome://seostatus/skin/pr/aprN.gif");
  220.           
  221.           var alexaStatusBut = document.getElementById('SEOTB-Alexa-status');
  222.           alexaStatusBut.setAttribute("tooltiptext", "Alexa Rank: N/A"); 
  223.           alexaStatusBut.setAttribute("image", "chrome://seostatus/skin/pr/alN.png");
  224.           
  225.       }
  226.       
  227.     }
  228.     
  229.     pub.firstTimeRun = function(){
  230.                                        
  231.         var branch = pub.pref.getBranch("seostatus.");
  232.        
  233.         if (branch.prefHasUserValue("stb_installDate")){
  234.             //alert("install date already exists");
  235.                 return;
  236.         }
  237.         else{
  238.             //alert("About to create install date");
  239.             //window.openDialog( "chrome://seostatus/content/options.xul", "seostatus-options-dialog", "centerscreen,chrome,modal" );
  240.             var currentTime = new Date();
  241.             var month = currentTime.getMonth() + 1;
  242.             var day = currentTime.getDate();
  243.             var hour = currentTime.getHours();
  244.             var min = currentTime.getMinutes();
  245.             var sec = currentTime.getSeconds();
  246.             var year = currentTime.getFullYear();
  247.             
  248.             var date  = year + "" + month + "" + day +  "" + hour + "" + min + "" + sec;
  249.             var date2 = month + "/" + day + "/" + year;
  250.             //alert(date);
  251.                branch.setIntPref("stb_installDate", date);
  252.                branch.setBoolPref("stb_alexa_agree", true);
  253.                branch.setBoolPref("stb_hide_the_meters", false);
  254.                
  255.                var topWindow = com.seostatus.options.getTopWindow();
  256.                var STB_tb_pr = topWindow.document.getElementById( "STB_Meters" );
  257.                var STB_sb_PR = topWindow.document.getElementById( "STB_statusbar_meters" );
  258.  
  259.             STB_tb_pr.setAttribute("hidden", "false");
  260.                STB_sb_PR.setAttribute("hidden", "true");
  261.             
  262.         }
  263.         
  264.     }
  265.   
  266.     pub.getAlexaStatus = function(ar)
  267.     {
  268.         if( ar < 0 )
  269.         {
  270.             return 0;
  271.         }
  272.         
  273.         var rank = Math.log( ar ) / Math.log( 5 );
  274.         rank = Math.floor( rank );
  275.         if( rank > 10 )
  276.         {
  277.             rank = 10;    
  278.         }
  279.         
  280.         return ( 10 - rank );
  281.     }
  282.       
  283.       pub.getDomain = function()
  284.       {
  285.           var url = new String( window._content.document.location );
  286.         return url.replace( /http:\/\/(.+?)\/.*$/gi, "$1" );
  287.       }
  288.       
  289.       pub.urlEncode = function( url ) 
  290.     {
  291.       return escape(url).replace(/\+/g, '%2B').replace(/\"/g, '%22').replace(/\'/g, '%27');
  292.     }
  293.       
  294.       pub.getDomainAndPath = function()
  295.       {
  296.           var url = new String( window._content.document.location );
  297.         return url.replace( /http:\/\/(.+)$/gi, "$1" );
  298.       }
  299.   
  300.       pub.getDomainUrl = function()
  301.       {
  302.           var url = new String( window._content.document.location );
  303.         return url.replace( /http:\/\/(.+?)\/.*$/gi, "http://$1/" );
  304.       }
  305.   
  306.   
  307.   /*   
  308.   function getAlexaNum(sentDomain)
  309.   {       
  310.       var theDomain =  'http://www.rubyweb.org/alexaToolbar.php?domain='+escape(sentDomain)+'&value=true';
  311.       var alexaBut = document.getElementById('SEOTB-Alexa');
  312.       alexaBut.setAttribute("tooltiptext", "Alexa Rank: Computing..."); 
  313.       alexaBut.setAttribute("image", "chrome://seostatus/skin/pr/aprThink.gif");
  314.       pub.makeRequest(theDomain, "1"); // 1 is for alexa...
  315.       //alert(theDomain);
  316.             //        pub.makeRequest(theDomain);
  317.   }
  318.   
  319.   function getPRNum(sentDomain)
  320.   {      
  321.       var theDomain =  'http://www.rubyweb.org/pagerankToolbar.php?domain='+escape(sentDomain);
  322.       var prBut = document.getElementById('changeMe');  
  323.       prBut.setAttribute("tooltiptext", "PageRank: Computing..."); 
  324.       prBut.setAttribute("image", "chrome://seostatus/skin/pr/prCompute.gif");
  325.       pub.makeRequest(theDomain, "2"); // 1 is for PR...
  326.                     
  327.   }
  328.     */      
  329.   pub.makeRequest = function(sentURL, sentType) 
  330.           {
  331.               var our_request;
  332.                  if (window.XMLHttpRequest) 
  333.                   { 
  334.                       our_request = new XMLHttpRequest();
  335.                       if (our_request.overrideMimeType) 
  336.                           {
  337.                               our_request.overrideMimeType('text/xml');
  338.                           }
  339.                   }         
  340.                   if (!our_request) 
  341.                      {
  342.                      
  343.                       return false;
  344.                   }
  345.               our_request.onreadystatechange = function() { pub.handleValidResponse(our_request, sentType, sentURL);}
  346.               our_request.open('GET', sentURL, true);
  347.               // alert ("url: "+sentURL);
  348.               our_request.send(null);
  349.               return true;
  350.           }
  351.   pub.handleValidResponse = function(sentRequest, sentType, sentURL) 
  352.           { 
  353.             var handledValid;        
  354.               var ready = -1;
  355.               var aSite;
  356.             if ((handledValid != true) && sentRequest && (sentRequest.readyState == 4) && (sentRequest.status == 200)) 
  357.                   {             
  358.                   var xmldocFake = sentRequest.responseXML;     
  359.                               var validDoc = xmldocFake.getElementsByTagName('seostatus').item(0); 
  360.                              
  361.                               if (validDoc != null)
  362.                               {            
  363.                                             
  364.                                       alexaRet = xmldocFake.getElementsByTagName('value').item(0).firstChild.data;                                                       
  365.                                       domainRet = xmldocFake.getElementsByTagName('domain').item(0).firstChild.data;
  366.                                   //    if (sentType == 1) alert(alexaRet);  
  367.                                   //    if (sentType == 1) alert(domainRet);  
  368.   //                    alert ("value: " + alexaRet + " .... domainRet: " + domainRet + "\nType: " + sentType); 
  369.                                                                   
  370.                       handledValid = true;
  371.                   
  372.                   newSentUrl = sentURL.replace(/[^a-zA-Z 0-9]+/g,'');
  373.                   newCurrLoc = escape(content.document.location).replace(/[^a-zA-Z 0-9]+/g,'');
  374.                   //if (sentType == 1) alert("comparing: " +  pub.getDomainOnly(domainRet) +"\nto\n"+pub.getDomainOnly(content.document.location));
  375.                  
  376.                   if (newSentUrl.match(newCurrLoc) != null || (pub.getDomainOnly(domainRet).match(pub.getDomainOnly(content.document.location)) != null && sentType==1) ){
  377.                   
  378.                           pub.updateText(alexaRet, sentType); 
  379.                       if (sentType == 1) {
  380.                           pub.updateLexi(content.document.location);
  381.                           aSite = new pub.SiteInfo(pub.getDomainOnly(content.document.location), sentType, alexaRet); 
  382.                       }                       
  383.                       else{
  384.                           aSite = new pub.SiteInfo(content.document.location, sentType, alexaRet); 
  385.                       }
  386.                           
  387.                     //      alert ("value: "+alexaRet);
  388.                             
  389.                       pub.allURLs.push(aSite);  
  390.     //jj//                  alert("arraylen = "+ pub.allURLs.length + "  \nAdding " + content.document.location);
  391.                   }
  392.                     }
  393.               } 
  394.   
  395.           }
  396.    pub.updateText = function(sentValue, sentType) 
  397.           {
  398.           try{
  399.                if (sentType == 2){
  400.                      var prBut = document.getElementById('changeMe'); 
  401.                    var prButSB = document.getElementById('SEOTB-PR-status');
  402.                    if (document.getElementById('STB_Meters').getAttribute("hidden") == "true"){
  403.                       //if the PR meter is not enabled anywhere....
  404.                       if (document.getElementById('STB_statusbar_meters').getAttribute("hidden") == "true"){
  405.                           return;
  406.                       }              
  407.                    } 
  408.                   if (sentValue > 10){                    
  409.                       prBut.setAttribute("tooltiptext", "PageRank: Computing..."); 
  410.                       prBut.setAttribute("image", "chrome://seostatus/skin/pr/aprThink.gif");
  411.                       return;
  412.                   }
  413.                   
  414.                   if (sentValue != "N"){                    
  415.                       prBut.setAttribute("tooltiptext", "PageRank: "+sentValue+"/10");
  416.                       prButSB.setAttribute("tooltiptext", "PageRank: "+sentValue+"/10"); 
  417.                   }
  418.                   else {
  419.                       prBut.setAttribute("tooltiptext", "PageRank: Not Ranked");
  420.                       prButSB.setAttribute("tooltiptext", "PageRank: Not Ranked");
  421.                   }
  422.                                                                                                   
  423.                   prBut.setAttribute("image", "chrome://seostatus/skin/pr/Pagerank"+sentValue+".jpg");
  424.                   if (sentValue == 'N') sentValue = 0;
  425.                   prButSB.setAttribute("src", "chrome://seostatus/skin/pr/pr"+sentValue+".png");
  426.                   
  427.             } 
  428.             else
  429.             {        
  430.             // alert("adding '" + sentValue + "' as type " + sentType);
  431.                  var alexaBut   = document.getElementById('SEOTB-Alexa');
  432.                  
  433.                  var alexaButSB = document.getElementById('SEOTB-Alexa-status');
  434.                  if (document.getElementById('STB_Meters').getAttribute("hidden") == "true"){
  435.                     //if the alexa meter is not enabled anywhere....
  436.                     if (document.getElementById('STB_statusbar_meters').getAttribute("hidden") == "true"){
  437.                         return;
  438.                     }              
  439.                  }               
  440.                   
  441.                   var alexaRankTB;
  442.                   if (sentValue != "N"){
  443.                       alexaRankTB = pub.getAlexaStatus(sentValue);
  444.                       alexaBut.setAttribute("tooltiptext", "Alexa Rank: "+pub.addCommas(sentValue));
  445.                       alexaBut.setAttribute("image", "chrome://seostatus/skin/pr/apr"+alexaRankTB+".gif"); 
  446.                       alexaButSB.setAttribute("tooltiptext", "Alexa Rank: "+pub.addCommas(sentValue));
  447.                       alexaButSB.setAttribute("src", "chrome://seostatus/skin/pr/al"+alexaRankTB+".png");     
  448.                   }
  449.                   else {
  450.                       alexaRankTB = "N";
  451.                       alexaBut.setAttribute("tooltiptext", "Alexa Rank: Not Ranked");
  452.                       alexaBut.setAttribute("image", "chrome://seostatus/skin/pr/aprN.gif");    
  453.                       alexaButSB.setAttribute("tooltiptext", "Alexa Rank: Not Ranked");
  454.                       alexaButSB.setAttribute("src", "chrome://seostatus/skin/pr/al0.png");   
  455.                   }
  456.                               
  457.             }
  458.     }
  459.     catch(e){alert(e);}
  460.                                
  461.           }
  462.           
  463.   pub.addCommas = function(nStr)
  464.   {
  465.       nStr += '';
  466.       x = nStr.split('.');
  467.       x1 = x[0];
  468.       x2 = x.length > 1 ? '.' + x[1] : '';
  469.       var rgx = /(\d+)(\d{3})/;
  470.       while (rgx.test(x1)) {
  471.           x1 = x1.replace(rgx, '$1' + ',' + '$2');
  472.       }
  473.       return x1 + x2;
  474.   }
  475.           
  476.   pub.updateLexi = function(sentURL){
  477.       var alexa_count;
  478.       var tmpDom = 'http://redirect.alexa.com/redirect?'+escape(sentURL);
  479.       var tmp_req  = new XMLHttpRequest();
  480.       
  481.       if (tmp_req) {
  482.           tmp_req.open('GET', tmpDom, true);
  483.           // alert ("doing Alexa update: "+tmpDom);
  484.             tmp_req.send(null);
  485.       }
  486.       return;
  487.   }
  488.   
  489.   
  490.   pub.toolbarValue = function(sentAlexa){
  491.         alexaRank = sentAlexa.replace(/,/ , "");
  492.         alexaRank = alexaRank.replace(/,/ , "");
  493.         alexaRank = alexaRank.replace(/,/ , "");
  494.         alexaRank = alexaRank.replace(/,/ , "");
  495.         alexaRank = alexaRank.replace(/,/ , "");
  496.         var alexaToolbarVal = 0;
  497.       
  498.         if (alexaRank >      10000000 || alexaRank == 0) 
  499.         {      
  500.             alexaToolbarVal = 0;
  501.         }
  502.         else if (alexaRank >  2000000) {    
  503.             alexaToolbarVal = 1;
  504.         }
  505.         else if (alexaRank >   400000) {     
  506.             alexaToolbarVal = 2;
  507.         }
  508.         else if (alexaRank >   200000)  {
  509.             alexaToolbarVal = 3;
  510.         }
  511.         else if (alexaRank >    25000)   {      
  512.             alexaToolbarVal = 4;
  513.         }
  514.         else if (alexaRank >     5000)    {      
  515.             alexaToolbarVal = 5;
  516.         }
  517.         else if (alexaRank >     1000)    {
  518.             alexaToolbarVal = 6;
  519.         }
  520.         else if (alexaRank >      125)    {      
  521.             alexaToolbarVal = 7;
  522.         }
  523.          else if (alexaRank >      25)     {      
  524.             alexaToolbarVal = 8;
  525.         }
  526.         else if (alexaRank >        4)     {      
  527.             alexaToolbarVal = 9;
  528.         }
  529.          else if (alexaRank >=      1)     {      
  530.             alexaToolbarVal = 10;
  531.         }
  532.         else {      
  533.             alexaToolbarVal = "N";
  534.         }
  535.   
  536.         return alexaToolbarVal;
  537.   }
  538.   
  539.   pub.getDomainOnly = function(sentStrObj){
  540.      if (sentStrObj == null || sentStrObj.length == 0) 
  541.         return ""; 
  542.      
  543.      var url = new String(sentStrObj);
  544.      var domain = url.match( /:\/\/(www\.)?([^\/:]+)/ ); 
  545.      if (domain){
  546.         domain = domain[2]?domain[2]:''; 
  547.      }
  548.      else domain = "";
  549.      return domain;
  550.   }
  551.   return pub;
  552. }(); 
  553.   
  554.   window.addEventListener( "focus", function() {com.seostatus.seoPRAlexa.justLoaded();}, true );
  555.   window.addEventListener( "load", function() {com.seostatus.seoPRAlexa.firstTimeRun();}, true );
  556.